์์ฑ: 2026-03-04 05:39:06์์ : 2026-03-04 05:39:06
Nuxt.js ํต์ฌ ๊ฐ๋ : ์๋ ์ํฌํธ์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ ์ดํดํ๊ธฐ
Nuxt.js๋ "์ค์ ๋ณด๋ค ๊ด์ต(Convention over Configuration)"์ ์ค์ํ๋ ํ๋ ์์ํฌ์ ๋๋ค. ์ ํด์ง ํด๋ ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฅด๋ ๊ฒ๋ง์ผ๋ก๋ ์๋ง์ ๋ณต์กํ ์ค์ ์ ์๋์ผ๋ก ์ฒ๋ฆฌํด ์ค๋๋ค.
1. ๋ง๋ฒ ๊ฐ์ ์๋ ์ํฌํธ (Auto-imports)
Nuxt์ ๊ฐ์ฅ ํฐ ํน์ง ์ค ํ๋๋ import๋ฌธ์ ์๋ตํ ์ ์๋ค๋ ์ ์
๋๋ค.
- Components:
components/ํด๋์ Vue ์ปดํฌ๋ํธ ์๋ ์ํฌํธ. - Composables:
composables/ํด๋์ ํจ์ ์๋ ์ํฌํธ. - Vue & Nuxt API:
ref,computed,useFetch๋ฑ ํ์ API ์๋ ์ํฌํธ.
2. ํ์ ๋๋ ํ ๋ฆฌ ์ญํ
| ํด๋๋ช | ์ญํ |
|---|---|
pages/ | ํ์ผ ๊ธฐ๋ฐ ๋ผ์ฐํ
์ ๋ด๋นํฉ๋๋ค. index.vue๋ / ๊ฒฝ๋ก๊ฐ ๋ฉ๋๋ค. |
components/ | UI ์ปดํฌ๋ํธ๋ค์ ๋ด์ต๋๋ค. ํด๋ ๊ตฌ์กฐ์ ๋ฐ๋ผ ์ด๋ฆ์ด ๊ฒฐ์ ๋ฉ๋๋ค. |
composables/ | ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋น์ฆ๋์ค ๋ก์ง(๊ณตํต ํจ์)์ ๋ก๋๋ค. |
server/ | API ์์ง(Nitro)์ด ๋์ํ๋ ๊ณณ์ ๋๋ค. ๋ฐฑ์๋ API ์๋ฒ ์ญํ ์ ์ํํฉ๋๋ค. |
assets/ | ๋น๋ ๋๊ตฌ(Vite)๊ฐ ์ฒ๋ฆฌํด์ผ ํ๋ ์คํ์ผ, ์ด๋ฏธ์ง ํ์ผ๋ค. |
public/ | ๋ก๋ด ํ์ผ(robots.txt), ํ๋น์ฝ ๋ฑ ์ ์ ํ์ผ์ ์ง์ ์๋นํฉ๋๋ค. |
3. App.vue vs Pages
app.vue: ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํธ๋ฆฌ ํฌ์ธํธ(์ต์์)์ ๋๋ค. ๋ชจ๋ ํ์ด์ง์์ ๊ณตํต์ผ๋ก ๋ณด์ผ ๋ ์ด์์์ด๋ ์ค์ (Naive UI์ Config Provider ๋ฑ)์ ๋ฃ๊ธฐ์ ์ ํฉํฉ๋๋ค.<NuxtPage />:pages/ํด๋์ ๋ด์ฉ์ด ๋ ๋๋ง๋๋ ์์น๋ฅผ ์ง์ ํ๋ ์ปดํฌ๋ํธ์ ๋๋ค.
4. ๊ฒฐ๋ก
Nuxt๋ ์ ํด์ง ์์น์ ํ์ผ์ ๋๋ ๊ฒ๋ง์ผ๋ก๋ ๊ฐ๋ฐ์๊ฐ ๋น์ฆ๋์ค ๋ก์ง์๋ง ์ง์คํ ์ ์๊ฒ ํด์ค๋๋ค. ์ด ๊ตฌ์กฐ๋ฅผ ์ตํ๋ ๊ฒ์ด Nuxt ๋ง์คํฐ์ ์ฒซ๊ฑธ์์ ๋๋ค.